home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / onlypc / java / samples.bin / CalculateFrame.java < prev    next >
Text File  |  1996-03-07  |  7KB  |  216 lines

  1. /*
  2.     This class is a basic extension of the Frame class.  It can be used by
  3.     either an applet or application.  To use it, create a reference to the class,
  4.     instantiate an object of the class, and call the show() method.
  5.  
  6.     example:
  7.                 CalculateFrame myNewFrame;
  8.                 myNewFrame = new CalculateFrame();
  9.                 myNewFrame.show();
  10.  
  11.     You can add controls or menus to this class with Cafe Studio.
  12.  */
  13.  
  14.  
  15. import java.awt.*;
  16. import java.lang.*;
  17.  
  18. public class CalculateFrame extends Frame {
  19.  
  20.     public CalculateFrame() {
  21.         super("Simple Calculations");
  22.  
  23.         //{{INIT_CONTROLS
  24.         setLayout(null);
  25.         addNotify();
  26.         resize(insets().left + insets().right + 299, insets().top + insets().bottom + 261);
  27.         label1=new Label("Number 1 =");
  28.         add(label1);
  29.         label1.reshape(insets().left + 12,insets().top + 65,84,13);
  30.         label2=new Label("Number 2 =");
  31.         add(label2);
  32.         label2.reshape(insets().left + 12,insets().top + 98,84,13);
  33.         label3=new Label("Answer =");
  34.         add(label3);
  35.         label3.reshape(insets().left + 12,insets().top + 143,84,13);
  36.         Number1Field=new TextField(8);
  37.         add(Number1Field);
  38.         Number1Field.reshape(insets().left + 114,insets().top + 60,72,18);
  39.         Number2Field=new TextField(8);
  40.         add(Number2Field);
  41.         Number2Field.reshape(insets().left + 114,insets().top + 96,72,18);
  42.         AnswerField=new TextField(8);
  43.         add(AnswerField);
  44.         AnswerField.reshape(insets().left + 114,insets().top + 138,72,18);
  45.         AddButton=new Button("+");
  46.         add(AddButton);
  47.         AddButton.reshape(insets().left + 216,insets().top + 60,24,18);
  48.         DivideButton=new Button("/");
  49.         add(DivideButton);
  50.         DivideButton.reshape(insets().left + 216,insets().top + 138,24,18);
  51.         MultiplyButton=new Button("x");
  52.         add(MultiplyButton);
  53.         MultiplyButton.reshape(insets().left + 216,insets().top + 112,24,18);
  54.         SubtractButton=new Button("-");
  55.         add(SubtractButton);
  56.         SubtractButton.reshape(insets().left + 216,insets().top + 86,24,18);
  57.         //}}
  58.  
  59.         AnswerField.setBackground(Color.gray);
  60.         Number1Field.requestFocus();
  61.  
  62.         //{{INIT_MENUS
  63.         MenuBar mb = new MenuBar();
  64.         menu1 = new Menu("&Calculate");
  65.         menu1.add(new MenuItem("&Add"));
  66.         menu1.add(new MenuItem("&Subtract"));
  67.         menu1.add(new MenuItem("&Multiply"));
  68.         menu1.add(new MenuItem("&Divide"));
  69.         mb.add(menu1);
  70.         setMenuBar(mb);
  71.         //}}
  72.     }
  73.  
  74.  
  75.     public synchronized void show() {
  76.         move(50, 50);
  77.         super.show();
  78.     }
  79.  
  80.  
  81.     public boolean handleEvent(Event event) {
  82.         if (event.id == Event.ACTION_EVENT && event.target == DivideButton) {
  83.                 OnDivide();
  84.                 return true;
  85.         }
  86.         else
  87.         if (event.id == Event.ACTION_EVENT && event.target == MultiplyButton) {
  88.                 OnMultiply();
  89.                 return true;
  90.         }
  91.         else
  92.         if (event.id == Event.ACTION_EVENT && event.target == SubtractButton) {
  93.                 OnSubtract();
  94.                 return true;
  95.         }
  96.         else
  97.         if (event.id == Event.ACTION_EVENT && event.target == AddButton) {
  98.                 OnAdd();
  99.                 return true;
  100.         }
  101.         else
  102.         if (event.id == Event.WINDOW_DESTROY) {
  103.             hide();
  104.             return true;
  105.         }
  106.  
  107.         return super.handleEvent(event);
  108.     }
  109.  
  110.     //{{DECLARE_CONTROLS
  111.     Label label1;
  112.     Label label2;
  113.     Label label3;
  114.     TextField Number1Field;
  115.     TextField Number2Field;
  116.     TextField AnswerField;
  117.     Button AddButton;
  118.     Button DivideButton;
  119.     Button MultiplyButton;
  120.     Button SubtractButton;
  121.     //}}
  122.  
  123.  
  124.     //{{DECLARE_MENUS
  125.     Menu menu1;
  126.     //}}
  127.  
  128.  
  129.     public boolean action(Event event, Object arg) {
  130.         if (event.target instanceof MenuItem) {
  131.             String label = (String) arg;
  132.             if (label.equalsIgnoreCase("&Divide")) {
  133.                 OnDivide();
  134.                 return true;
  135.             } else if (label.equalsIgnoreCase("&Multiply")) {
  136.                 OnMultiply();
  137.                 return true;
  138.             } else if (label.equalsIgnoreCase("&Subtract")) {
  139.                 OnSubtract();
  140.                 return true;
  141.             } else if (label.equalsIgnoreCase("&Add")) {
  142.                 OnAdd();
  143.                 return true;
  144.             }
  145.         }
  146.         return super.action(event, arg);
  147.     }
  148.  
  149.     public void OnAdd() {
  150.         double sum, num1, num2;
  151.  
  152.         try {
  153.             num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
  154.             num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
  155.         } catch (NumberFormatException e) { return; }
  156.  
  157.         sum = num1 + num2;
  158.  
  159.         if( sum < 0 ) { AnswerField.setBackground(Color.red);  }
  160.         else          { AnswerField.setBackground(Color.gray); }
  161.  
  162.         AnswerField.setText(String.valueOf(sum));
  163.     }
  164.  
  165.     public void OnSubtract() {
  166.         double diff, num1, num2;
  167.  
  168.         try {
  169.             num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
  170.             num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
  171.         } catch (NumberFormatException e) { return; }
  172.  
  173.         diff = num1 - num2;
  174.  
  175.         if( diff < 0) { AnswerField.setBackground(Color.red);  }
  176.         else          { AnswerField.setBackground(Color.gray); }
  177.  
  178.         AnswerField.setText(String.valueOf(diff));
  179.     }
  180.  
  181.     public void OnMultiply() {
  182.         double product, num1, num2;
  183.  
  184.         try {
  185.             num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
  186.             num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
  187.         } catch (NumberFormatException e) { return; }
  188.  
  189.         product = num1 * num2;
  190.  
  191.         if( product < 0) { AnswerField.setBackground(Color.red);  }
  192.         else             { AnswerField.setBackground(Color.gray); }
  193.  
  194.         AnswerField.setText(String.valueOf(product));
  195.     }
  196.  
  197.     public void OnDivide() {
  198.         double quotient, num1, num2;
  199.  
  200.         try {
  201.             num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
  202.             num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
  203.         } catch (NumberFormatException e) { return; }
  204.  
  205.         if(num2 == 0) return;
  206.  
  207.         quotient = num1 / num2;
  208.  
  209.         if( quotient < 0) { AnswerField.setBackground(Color.red);  }
  210.         else              { AnswerField.setBackground(Color.gray); }
  211.  
  212.         AnswerField.setText(String.valueOf(quotient));
  213.     }
  214.  
  215. }
  216.